]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot: Return an error when operation is blocked
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 28 May 2020 22:35:27 +0000 (00:35 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Thu, 28 May 2020 22:52:33 +0000 (00:52 +0200)
Right now _createScreenshot() returns a tuple that indicates failure
when a sender requests a screenshot operation before a previously
started operation finished.

However that doesn't work for the PickColor() method, as it uses a
different return type than the other methods.

Address this by returning an error instead, which works in any case;
arguably trying to start multiple operations in parallel is an error
by the caller more than it is a failed operation anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288

js/ui/screenshot.js

index 7be9ba051aa1bcc7afe92803198731aceb4b4f72..5b7e0938721cee0510f7311a4ecb3241137f0cf1 100644 (file)
@@ -37,7 +37,9 @@ var ScreenshotService = class {
 
         let sender = invocation.get_sender();
         if (this._screenShooter.has(sender) || lockedDown) {
-            invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
+            invocation.return_error_literal(
+                Gio.IOErrorEnum, Gio.IOErrorEnum.BUSY,
+                'There is an ongoing operation for this sender');
             return null;
         }